package redigo

import (
	"gobase/logger"

	"github.com/gomodule/redigo/redis"
	"go.uber.org/zap"
)

type Redis struct {
	conn redis.Conn
}

var defaultClient *Redis

func InitRedis() {
	r, err := NewRedis()
	if err != nil {
		logger.Error("Init Redis Client Error", zap.Error(err))
		return
	}
	defaultClient = r
}

func NewRedis() (*Redis, error) {
	conn, err := redis.Dial("tcp", ":6379")
	if err != nil {
		logger.Error("create redis connection error", zap.Error(err))
		return nil, err
	}
	return &Redis{
		conn: conn,
	}, nil
}

func (r *Redis) Close() {
	if err := r.conn.Close(); err != nil {
		logger.Error("close redis connection error", zap.Error(err))
		return
	}
}

func Close() {
	defaultClient.Close()
}

//TODO Redis Set/Get Function
